Skip to content

CI: pin jupyter-book<2 in the execution test workflows - #596

Merged
mmcky merged 1 commit into
mainfrom
fix-execution-tests-jb-pin
Aug 4, 2026
Merged

CI: pin jupyter-book<2 in the execution test workflows#596
mmcky merged 1 commit into
mainfrom
fix-execution-tests-jb-pin

Conversation

@mmcky

@mmcky mmcky commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Closes #569.

Every scheduled run of the three "Execution Tests [Latest Anaconda]" workflows has failed with jb: command not found since jupyter-book 2.x became the default pip target (~10 weeks) — the 2.x line drops the jb CLI, so the unpinned pip install jupyter-book silently swapped the toolchain out from under the build step.

Decision context: the repo stays firmly on jupyter-book<2 until a JB2-compatible theme exists (the mystmd migration is tracked separately in #593 / PR #363). That keeps these workflows relevant for their stated purpose — testing the lectures against the latest Anaconda — so the fix pins only jupyter-book rather than switching to environment-file: environment.yml, which would have made them near-duplicates of cache.yml.

Changes (all three execution-*.yml)

  • pip install "jupyter-book<2" ..., mirroring the <2.0 pin in environment.yml, with a comment explaining the pin so it isn't "cleaned up" later.
  • execution-win.yml: dropped the duplicate bare pip install jupyter-book that preceded the full install line.
  • Added workflow_dispatch: — the workflows were schedule-only, which is why this breakage could only be observed on the daily/weekly cadence. With the trigger, the fix (and any future change) can be validated on demand.

Verification

A workflow_dispatch run of the linux workflow against this branch is the real test — a green cache.yml proves nothing here since it installs from the pinned environment.yml. Note that after ~10 weeks without signal, the first run may surface genuine execution drift (new package versions from latest Anaconda) beyond the install fix; those would be real findings, not regressions from this PR.

🤖 Generated with Claude Code

Since jupyter-book 2.x became the default pip target the unpinned
install has left every scheduled run failing at the build step with
"jb: command not found" — no execution signal on any OS since May.

- pin "jupyter-book<2" in all three execution-*.yml, mirroring the
  <2.0 pin in environment.yml (the repo stays on jupyter-book 1.x
  until a JB2-compatible theme exists)
- drop the duplicate bare "pip install jupyter-book" in
  execution-win.yml
- add workflow_dispatch so the workflows can be validated on demand
  instead of waiting for the next scheduled run

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 23:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes the scheduled “Execution Tests [Latest Anaconda]” GitHub Actions workflows that started failing once pip install jupyter-book began resolving to jupyter-book 2.x (which no longer provides the jb CLI these workflows use). It pins jupyter-book to <2 in those workflows and adds a manual trigger so the jobs can be run on demand.

Changes:

  • Added workflow_dispatch: to the Linux/OSX/Windows execution-test workflows to allow manual runs.
  • Pinned jupyter-book to <2 in all three workflows (with an explanatory comment) so jb build ... is available again.
  • Removed the redundant separate pip install jupyter-book line in the Windows workflow.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
.github/workflows/execution-linux.yml Adds manual trigger and pins jupyter-book<2 to restore jb CLI for lecture builds.
.github/workflows/execution-osx.yml Adds manual trigger and pins jupyter-book<2 to restore jb CLI for lecture builds.
.github/workflows/execution-win.yml Adds manual trigger, removes duplicate pip install jupyter-book, and pins jupyter-book<2 to restore jb CLI.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

@mmcky

mmcky commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Validation — all three OSes green ✅

The workflow_dispatch trigger added in this PR was used to run each workflow against this branch. All three passed, each executing all 26 lectures fresh (verified per-notebook Executed notebook in N seconds [mystnb] lines in the logs, build succeeded. under -W):

Workflow Run Build step Result
Linux 30861619490 3m 09s ✅ 26/26 executed
OSX 30862108552 3m 56s ✅ 26/26 executed
Windows 30862110250 3m 52s ✅ 26/26 executed

No execution drift surfaced despite the long gap — latest Anaconda + jupyter-book<2 builds the full lecture set cleanly on all three platforms.

Worth knowing: these are the first green runs of the execution workflows since 2025-11-02 — 353 consecutive scheduled runs had failed (274 linux / 40 osx / 39 win). The jb: command not found mode described in #569 only dates from May 2026; the 2025-11 → 2026-05 failures had some other cause that is no longer diagnosable (log retention). Written up as a telemetry case study on QuantEcon/meta#328.

🤖 Generated with Claude Code

@mmcky
mmcky merged commit 969028b into main Aug 4, 2026
9 checks passed
@mmcky
mmcky deleted the fix-execution-tests-jb-pin branch August 4, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: "Execution Tests [Latest Anaconda]" fail with jb: command not found (jupyter-book 2.x pulled unpinned)

2 participants